<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- <script src="./1手写promise基础1.js"></script> -->
    <!-- <script src="./2解决传递错误以及不继续执行.js"></script> -->
    <!-- <script src="./3.then.js"></script> -->
    <!-- <script src="./4resolve执行异步处理.js"></script> -->
    <!-- <script src="./5.then链式.js"></script> -->
    <!-- <script src="./6.then返回promise.js"></script> -->
    <!-- <script src="./7优化.js"></script> -->
    <script src="./8限制.js"></script>
</head>

<body>
    <script>
        // let p = new myPromise((resolve, reject) => {
        //     resolve('成功')
        //     // reject('失败')
        // })
        // console.log(p)



        // let p = new myPromise((resolve, reject) => {
        //     a('aa')
        // })
        // console.log(p)



        // let p = new myPromise((resolve, reject) => {
        //     resolve('成功')
        //     // reject('失败')
        // }).then(res => {
        //     console.log(res)
        // })
        // console.log('先执行')


        // let p = new myPromise((resolve, reject) => {
        //     setTimeout(() => {
        //         // resolve('成功')
        //         reject('失败')
        //     }, 2000)
        // }).then(res => {
        //     // console.log(aaaa)
        //     // console.log(res)
        // }, err => {
        //     console.log(err)
        // })

        // let p = new myPromise((resolve, reject) => {
        //     setTimeout(() => {
        //         // resolve('成功')
        //         reject('失败')
        //     }, 2000)
        // }).then(res => {
        //     console.log(res)
        // }, err => {
        //     return '你好'
        // }).
        //     then().
        //     then(res => {
        //         console.log(res)
        //     }, err => {
        //         console.log(err)
        //     })


        // let p = new myPromise((resolve, reject) => {
        //     // resolve('成功')
        //     setTimeout(() => {
        //         reject('失败')
        //     }, 1000)
        // }).then(res => {
        //     console.log(1)
        //     return new myPromise((resolve, reject) => {
        //         resolve('你好呀')
        //     })
        // }, err => {
        //     return new myPromise((resolve, reject) => {
        //         resolve('你好')
        //     })
        // }).
        //     then(res => {
        //         console.log(res)
        //     }, err => {
        //         console.log(err)
        //     })

        // let p = new myPromise((resolve, reject) => {
        //     // resolve('成功')
        //     setTimeout(() => {
        //         reject('失败')
        //     }, 1000)
        // }).then(res => {
        //     console.log(1)
        //     return new myPromise((resolve, reject) => {
        //         resolve('你好呀')
        //     })
        // }, err => {
        //     return new myPromise((resolve, reject) => {
        //         resolve('你好')
        //     })
        // }).
        //     then(res => {
        //         console.log(res)
        //     }, err => {
        //         console.log(err)
        //     })

        //原生不能重复
        // let p = new Promise((resolve, reject) => {
        //     resolve('你好')
        // })
        // console.log(p)
        // let p1 = p.then(res => {
        //     return p1  //报错
        // })
        // console.log(p)
        // let p = new myPromise((resolve, reject) => {
        //     resolve('你好')
        // })
        // let p1 = p.then(res => {
        //     return p1  //报错
        // })
        // console.log(p)


        Promise.resolve('你好').then(val => {
            console.log(val)
        })


        Promise.reject('你好').then(null, resason => {
            console.log(resason)
        })

    </script>

</body>

</html>